PyPI വഴി പൈത്തൺ പാക്കേജുകൾ വിതരണം ചെയ്യുന്നതിനുള്ള ഒരു സമ്പൂർണ്ണ ഗൈഡ്. പതിപ്പ് മാനേജ്മെൻ്റ്, ടൂളുകൾ, ലോകമെമ്പാടുമുള്ള ഡെവലപ്പർമാർക്കുള്ള വർക്ക്ഫ്ലോകൾ എന്നിവ ഇതിൽ ഉൾപ്പെടുന്നു.
പൈത്തൺ പാക്കേജ് വിതരണം: PyPI പ്രസിദ്ധീകരണവും പതിപ്പ് മാനേജ്മെന്റും
പൈത്തൺ പാക്കേജ് ഇൻഡക്സ് (PyPI) വഴി എളുപ്പത്തിൽ ലഭ്യമാകുന്ന വിപുലമായ പാക്കേജുകളാണ് പൈത്തണിൻ്റെ ശക്തമായ ഇക്കോസിസ്റ്റത്തിന് പിന്നിൽ. നിങ്ങളുടെ സ്വന്തം പൈത്തൺ പാക്കേജുകൾ PyPI വഴി എങ്ങനെ വിതരണം ചെയ്യാമെന്നതിനെക്കുറിച്ചുള്ള ഒരു സമഗ്രമായ കാഴ്ചപ്പാടാണ് ഈ ഗൈഡ് നൽകുന്നത്, ഇത് ലോകമെമ്പാടുമുള്ള ഡെവലപ്പർമാർക്ക് ലഭ്യമാക്കുന്നു. ഉയർന്ന നിലവാരമുള്ള പൈത്തൺ പാക്കേജുകൾ നിർമ്മിക്കുന്നതിനും പ്രസിദ്ധീകരിക്കുന്നതിനുമുള്ള അവശ്യ ടൂളുകൾ, പതിപ്പ് മാനേജ്മെൻ്റിനുള്ള മികച്ച രീതികൾ, വർക്ക്ഫ്ലോകൾ എന്നിവ നമ്മൾ ഇവിടെ പര്യവേക്ഷണം ചെയ്യും.
നിങ്ങളുടെ പൈത്തൺ പാക്കേജ് എന്തിന് വിതരണം ചെയ്യണം?
നിങ്ങളുടെ പൈത്തൺ പാക്കേജ് വിതരണം ചെയ്യുന്നത് നിരവധി ഗുണങ്ങൾ നൽകുന്നു:
- നിങ്ങളുടെ സൃഷ്ടികൾ പങ്കുവെക്കുക: മറ്റ് ഡെവലപ്പർമാർക്ക് നിങ്ങളുടെ കോഡ് എളുപ്പത്തിൽ പുനരുപയോഗിക്കാൻ അനുവദിക്കുന്നു, ഇത് സഹകരണവും നൂതനാശയങ്ങളും പ്രോത്സാഹിപ്പിക്കുന്നു. പൈത്തണിൽ നിർമ്മിച്ച നിങ്ങളുടെ പ്രത്യേക ഡാറ്റാ അനാലിസിസ് ടൂളുകൾ ഒരു ആഗോള ടീം ഉപയോഗിക്കുന്നത് സങ്കൽപ്പിക്കുക.
- ഡിപൻഡൻസി മാനേജ്മെന്റ്: മറ്റ് പ്രോജക്റ്റുകളിൽ ഡിപൻഡൻസികൾ കൈകാര്യം ചെയ്യുന്ന പ്രക്രിയ ലളിതമാക്കുന്നു. നിങ്ങളുടെ പാക്കേജ് അതിൻ്റെ എല്ലാ ഡിപൻഡൻസികളോടും കൂടി ഒരൊറ്റ കമാൻഡിൽ ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും.
- ഓപ്പൺ സോഴ്സ് സംഭാവന: ഓപ്പൺ സോഴ്സ് കമ്മ്യൂണിറ്റിക്ക് സംഭാവന നൽകാനും നിങ്ങളുടെ പ്രവർത്തനത്തിന് അംഗീകാരം നേടാനും ഇത് നിങ്ങളെ പ്രാപ്തരാക്കുന്നു. പല നിർണായക സോഫ്റ്റ്വെയർ ഘടകങ്ങളും ലോകമെമ്പാടുമുള്ള ഡെവലപ്പർമാർ പരിപാലിക്കുന്ന ഓപ്പൺ സോഴ്സ് പാക്കേജുകളാണ്.
- പതിപ്പ് നിയന്ത്രണവും അപ്ഡേറ്റുകളും: പതിപ്പുകൾ നിയന്ത്രിക്കാനും അപ്ഡേറ്റുകൾ പുറത്തിറക്കാനും ബഗ് പരിഹരിക്കാനും ഒരു ഘടനാപരമായ മാർഗ്ഗം നൽകുന്നു. ഉപയോക്താക്കൾക്ക് എല്ലായ്പ്പോഴും നിങ്ങളുടെ പാക്കേജിൻ്റെ ഏറ്റവും പുതിയതും വിശ്വസനീയവുമായ പതിപ്പ് ലഭ്യമാണെന്ന് ഇത് ഉറപ്പാക്കുന്നു.
- എളുപ്പത്തിലുള്ള ഇൻസ്റ്റാളേഷൻ: ഉപയോക്താക്കൾക്ക്
pip install your-package-nameഎന്ന കമാൻഡ് ഉപയോഗിച്ച് ഇൻസ്റ്റാളേഷൻ ലളിതമാക്കുന്നു.
പൈത്തൺ പാക്കേജ് വിതരണത്തിനുള്ള അവശ്യ ടൂളുകൾ
പൈത്തൺ പാക്കേജുകൾ നിർമ്മിക്കുന്നതിനും വിതരണം ചെയ്യുന്നതിനും നിരവധി ടൂളുകൾ അത്യാവശ്യമാണ്:
- setuptools: പാക്കേജ് മെറ്റാഡാറ്റ നിർവചിക്കുന്നതിന് വ്യാപകമായി ഉപയോഗിക്കുന്ന ഒരു ലൈബ്രറിയാണിത്. പേര്, പതിപ്പ്, ഡിപൻഡൻസികൾ, എൻട്രി പോയിൻ്റുകൾ എന്നിവ ഇതിൽ ഉൾപ്പെടുന്നു. പൈത്തൺ പ്രോജക്റ്റുകൾ പാക്കേജ് ചെയ്യുന്നതിനുള്ള നിലവാരമായി ഇത് കണക്കാക്കപ്പെടുന്നു.
- wheel: സോഴ്സ് ഡിസ്ട്രിബ്യൂഷനുകളേക്കാൾ കാര്യക്ഷമവും വിശ്വസനീയവുമായ ഇൻസ്റ്റാളേഷൻ പ്രക്രിയ നൽകുന്ന ഒരു ഡിസ്ട്രിബ്യൂഷൻ ഫോർമാറ്റാണിത്. വീലുകൾ മുൻകൂട്ടി നിർമ്മിച്ച ഡിസ്ട്രിബ്യൂഷനുകളാണ്, അവ കംപൈലേഷൻ ആവശ്യമില്ലാതെ ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും.
- twine: നിങ്ങളുടെ പാക്കേജ് സുരക്ഷിതമായി PyPI-യിലേക്ക് അപ്ലോഡ് ചെയ്യുന്നതിനുള്ള ഒരു ടൂളാണിത്. ട്രാൻസ്മിഷൻ സമയത്ത് ട്വൈൻ നിങ്ങളുടെ ക്രെഡൻഷ്യലുകളും പാക്കേജ് ഡാറ്റയും എൻക്രിപ്റ്റ് ചെയ്യുന്നു, ഇത് ചോർത്തലിൽ നിന്നും മാൻ-ഇൻ-ദി-മിഡിൽ ആക്രമണങ്ങളിൽ നിന്നും സംരക്ഷിക്കുന്നു.
- venv/virtualenv: പ്രത്യേക പൈത്തൺ എൻവയോൺമെൻ്റുകൾ ഉണ്ടാക്കുന്നതിനുള്ള ടൂളുകളാണിത്. ഡിപൻഡൻസികൾ നിയന്ത്രിക്കുന്നതിനും വിവിധ പ്രോജക്റ്റുകൾ തമ്മിലുള്ള വൈരുദ്ധ്യങ്ങൾ ഒഴിവാക്കുന്നതിനും വെർച്വൽ എൻവയോൺമെൻ്റുകൾ ഉപയോഗിക്കുന്നത് നിർണായകമാണ്.
നിങ്ങളുടെ പ്രോജക്റ്റ് സജ്ജീകരിക്കുന്നു
നിങ്ങളുടെ പാക്കേജ് വിതരണം ചെയ്യുന്നതിനുമുമ്പ്, നിങ്ങളുടെ പ്രോജക്റ്റ് ശരിയായി ഘടനപ്പെടുത്തേണ്ടതുണ്ട്.
പ്രോജക്റ്റ് ഘടനയുടെ ഉദാഹരണം
my_package/ ├── my_package/ │ ├── __init__.py │ ├── module1.py │ └── module2.py ├── tests/ │ ├── __init__.py │ ├── test_module1.py │ └── test_module2.py ├── README.md ├── LICENSE ├── setup.py └── .gitignore
വിശദീകരണം:
- my_package/: നിങ്ങളുടെ പാക്കേജിൻ്റെ സോഴ്സ് കോഡ് അടങ്ങുന്ന പ്രധാന ഡയറക്ടറി.
- my_package/__init__.py: `my_package` ഡയറക്ടറിയെ ഒരു പൈത്തൺ പാക്കേജാക്കി മാറ്റുന്നു. ഇത് ശൂന്യമായിരിക്കാം അല്ലെങ്കിൽ ഇനീഷ്യലൈസേഷൻ കോഡ് അടങ്ങിയിരിക്കാം.
- my_package/module1.py, my_package/module2.py: യഥാർത്ഥ കോഡ് അടങ്ങുന്ന നിങ്ങളുടെ പൈത്തൺ മൊഡ്യൂളുകൾ.
- tests/: നിങ്ങളുടെ യൂണിറ്റ് ടെസ്റ്റുകൾ അടങ്ങുന്ന ഒരു ഡയറക്ടറി. നിങ്ങളുടെ പാക്കേജിൻ്റെ ഗുണനിലവാരവും വിശ്വാസ്യതയും ഉറപ്പാക്കാൻ ടെസ്റ്റുകൾ എഴുതുന്നത് നിർണായകമാണ്.
- README.md: നിങ്ങളുടെ പാക്കേജിൻ്റെ വിവരണം, ഉപയോഗ നിർദ്ദേശങ്ങൾ, മറ്റ് പ്രസക്തമായ വിവരങ്ങൾ എന്നിവ നൽകുന്ന ഒരു മാർക്ക്ഡൗൺ ഫയൽ. PyPI-യിൽ ഉപയോക്താക്കൾ ആദ്യം കാണുന്നത് ഇതായിരിക്കും.
- LICENSE: നിങ്ങളുടെ പാക്കേജ് വിതരണം ചെയ്യുന്ന ലൈസൻസ് അടങ്ങുന്ന ഒരു ഫയൽ (ഉദാ. MIT, Apache 2.0, GPL). നിങ്ങളുടെ കോഡ് മറ്റുള്ളവർക്ക് എങ്ങനെ ഉപയോഗിക്കാം എന്ന് വ്യക്തമാക്കുന്നതിന് അനുയോജ്യമായ ഒരു ലൈസൻസ് തിരഞ്ഞെടുക്കേണ്ടത് അത്യാവശ്യമാണ്.
- setup.py: നിങ്ങളുടെ പാക്കേജിൻ്റെ മെറ്റാഡാറ്റയും നിർമ്മാണ നിർദ്ദേശങ്ങളും നിർവചിക്കുന്ന പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ.
- .gitignore: Git അവഗണിക്കേണ്ട ഫയലുകളും ഡയറക്ടറികളും വ്യക്തമാക്കുന്നു (ഉദാ. താൽക്കാലിക ഫയലുകൾ, ബിൽഡ് ആർട്ടിഫാക്റ്റുകൾ).
`setup.py` ഫയൽ നിർമ്മിക്കുന്നു
നിങ്ങളുടെ പാക്കേജ് വിതരണത്തിൻ്റെ ഹൃദയമാണ് `setup.py` ഫയൽ. ഇതിൽ നിങ്ങളുടെ പാക്കേജിനെക്കുറിച്ചുള്ള മെറ്റാഡാറ്റയും അത് നിർമ്മിക്കുന്നതിനും ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുമുള്ള നിർദ്ദേശങ്ങളും അടങ്ങിയിരിക്കുന്നു. ഒരു ഉദാഹരണം ഇതാ:
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="my_package", # നിങ്ങളുടെ പാക്കേജിൻ്റെ പേര് നൽകുക
version="0.1.0",
author="Your Name", # നിങ്ങളുടെ പേര് നൽകുക
author_email="your.email@example.com", # നിങ്ങളുടെ ഇമെയിൽ നൽകുക
description="A small example package",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/yourusername/my_package", # നിങ്ങളുടെ റിപ്പോസിറ്ററി URL നൽകുക
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
python_requires='>=3.6',
install_requires=[
"requests", # ഉദാഹരണ ഡിപൻഡൻസി
],
)
വിശദീകരണം:
- name: നിങ്ങളുടെ പാക്കേജിൻ്റെ പേര്, ഇത് PyPI-യിൽ ഉപയോഗിക്കും. സവിശേഷവും വിവരണാത്മകവുമായ ഒരു പേര് തിരഞ്ഞെടുക്കുക.
- version: നിങ്ങളുടെ പാക്കേജിൻ്റെ പതിപ്പ് നമ്പർ. സെമാൻ്റിക് പതിപ്പ് നിയന്ത്രണം (താഴെ കാണുക) പിന്തുടരുക.
- author, author_email: നിങ്ങളുടെ പേരും ഇമെയിൽ വിലാസവും.
- description: നിങ്ങളുടെ പാക്കേജിൻ്റെ ഒരു ഹ്രസ്വ വിവരണം.
- long_description: സാധാരണയായി നിങ്ങളുടെ `README.md` ഫയലിൽ നിന്ന് വായിക്കുന്ന ഒരു ദീർഘവും വിശദവുമായ വിവരണം.
- long_description_content_type: നിങ്ങളുടെ ദീർഘമായ വിവരണത്തിൻ്റെ ഫോർമാറ്റ് വ്യക്തമാക്കുന്നു (ഉദാ. "text/markdown").
- url: നിങ്ങളുടെ പാക്കേജിൻ്റെ ഹോംപേജിൻ്റെ URL (ഉദാ. GitHub റിപ്പോസിറ്ററി).
- packages: നിങ്ങളുടെ വിതരണത്തിൽ ഉൾപ്പെടുത്തേണ്ട പാക്കേജുകളുടെ ഒരു ലിസ്റ്റ്. `setuptools.find_packages()` നിങ്ങളുടെ പ്രോജക്റ്റിലെ എല്ലാ പാക്കേജുകളും സ്വയമേവ കണ്ടെത്തുന്നു.
- classifiers: PyPI-യിൽ നിങ്ങളുടെ പാക്കേജ് കണ്ടെത്താൻ ഉപയോക്താക്കളെ സഹായിക്കുന്ന മെറ്റാഡാറ്റ. ട്രോവ് ക്ലാസിഫയറുകളുടെ പട്ടികയിൽ നിന്ന് അനുയോജ്യമായ ക്ലാസിഫയറുകൾ തിരഞ്ഞെടുക്കുക. പിന്തുണയ്ക്കുന്ന പൈത്തൺ പതിപ്പുകൾ, ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ, ലൈസൻസുകൾ എന്നിവയ്ക്കുള്ള ക്ലാസിഫയറുകൾ ഉൾപ്പെടുത്തുന്നത് പരിഗണിക്കുക.
- python_requires: നിങ്ങളുടെ പാക്കേജ് ഉപയോഗിക്കുന്നതിന് ആവശ്യമായ ഏറ്റവും കുറഞ്ഞ പൈത്തൺ പതിപ്പ് വ്യക്തമാക്കുന്നു.
- install_requires: നിങ്ങളുടെ പാക്കേജിന് ആവശ്യമായ ഡിപൻഡൻസികളുടെ ഒരു ലിസ്റ്റ്. നിങ്ങളുടെ പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ ഈ ഡിപൻഡൻസികൾ സ്വയമേവ ഇൻസ്റ്റാൾ ചെയ്യപ്പെടും.
പതിപ്പ് മാനേജ്മെന്റ്: സെമാന്റിക് പതിപ്പ് നിയന്ത്രണം
സെമാന്റിക് പതിപ്പ് നിയന്ത്രണം (SemVer) എന്നത് വ്യാപകമായി അംഗീകരിക്കപ്പെട്ട ഒരു പതിപ്പ് നിയന്ത്രണ രീതിയാണ്, ഇത് നിങ്ങളുടെ പാക്കേജിലെ മാറ്റങ്ങളുടെ സ്വഭാവം വ്യക്തവും സ്ഥിരതയോടെയും അറിയിക്കാൻ സഹായിക്കുന്നു.
ഒരു SemVer പതിപ്പ് നമ്പറിൽ മൂന്ന് ഭാഗങ്ങളുണ്ട്: MAJOR.MINOR.PATCH.
- MAJOR: നിങ്ങൾ പൊരുത്തമില്ലാത്ത API മാറ്റങ്ങൾ വരുത്തുമ്പോൾ ഇത് വർദ്ധിപ്പിക്കുന്നു. ഇത് ഉപയോക്താക്കൾക്ക് അവരുടെ കോഡ് അപ്ഡേറ്റ് ചെയ്യേണ്ടി വന്നേക്കാവുന്ന ഒരു പ്രധാന മാറ്റത്തെ സൂചിപ്പിക്കുന്നു.
- MINOR: നിങ്ങൾ പിന്നോട്ട് പൊരുത്തപ്പെടുന്ന രീതിയിൽ പുതിയ പ്രവർത്തനങ്ങൾ ചേർക്കുമ്പോൾ ഇത് വർദ്ധിപ്പിക്കുന്നു. നിലവിലുള്ള കോഡിനെ തകർക്കാത്ത പുതിയ ഫീച്ചറുകളെയോ മെച്ചപ്പെടുത്തലുകളെയോ ഇത് സൂചിപ്പിക്കുന്നു.
- PATCH: നിങ്ങൾ പിന്നോട്ട് പൊരുത്തപ്പെടുന്ന ബഗ് പരിഹാരങ്ങൾ വരുത്തുമ്പോൾ ഇത് വർദ്ധിപ്പിക്കുന്നു. ഇത് പുതിയ ഫീച്ചറുകൾ ചേർക്കുകയോ നിലവിലുള്ള പ്രവർത്തനങ്ങളെ തകർക്കുകയോ ചെയ്യാത്ത ചെറിയ പരിഹാരങ്ങൾക്കാണ്.
ഉദാഹരണങ്ങൾ:
- 1.0.0: പ്രാരംഭ റിലീസ്.
- 1.1.0: നിലവിലുള്ള കോഡിനെ തകർക്കാതെ ഒരു പുതിയ ഫീച്ചർ ചേർത്തു.
- 1.0.1: 1.0.0 റിലീസിലെ ഒരു ബഗ് പരിഹരിച്ചു.
- 2.0.0: പൊരുത്തമില്ലാത്ത API മാറ്റങ്ങൾ വരുത്തി.
SemVer ഉപയോഗിക്കുന്നത് നിങ്ങളുടെ പാക്കേജിൻ്റെ പുതിയ പതിപ്പിലേക്ക് അപ്ഗ്രേഡ് ചെയ്യുന്നതിൻ്റെ ആഘാതം മനസ്സിലാക്കാൻ ഉപയോക്താക്കളെ സഹായിക്കുന്നു.
നിങ്ങളുടെ പാക്കേജ് നിർമ്മിക്കൽ
നിങ്ങളുടെ `setup.py` ഫയൽ കോൺഫിഗർ ചെയ്തുകഴിഞ്ഞാൽ, നിങ്ങൾക്ക് നിങ്ങളുടെ പാക്കേജ് നിർമ്മിക്കാൻ കഴിയും.
- ഒരു വെർച്വൽ എൻവയോൺമെൻ്റ് ഉണ്ടാക്കുക: നിങ്ങളുടെ പാക്കേജിൻ്റെ ഡിപൻഡൻസികൾ വേർതിരിക്കുന്നതിന് ഒരു വെർച്വൽ എൻവയോൺമെൻ്റ് ഉണ്ടാക്കുന്നത് വളരെ ഉത്തമമാണ്. `python3 -m venv .venv` (അല്ലെങ്കിൽ `virtualenv .venv`) ഉപയോഗിക്കുക, തുടർന്ന് അത് സജീവമാക്കുക (ലിനക്സ്/മാക്ഒഎസിൽ `source .venv/bin/activate`, വിൻഡോസിൽ `.venv\Scripts\activate`).
- ബിൽഡ് ഡിപൻഡൻസികൾ ഇൻസ്റ്റാൾ ചെയ്യുക: `pip install --upgrade setuptools wheel` റൺ ചെയ്യുക.
- പാക്കേജ് നിർമ്മിക്കുക: `python setup.py sdist bdist_wheel` റൺ ചെയ്യുക. ഈ കമാൻഡ് `dist` ഡയറക്ടറിയിൽ രണ്ട് ഡിസ്ട്രിബ്യൂഷൻ ഫയലുകൾ ഉണ്ടാക്കുന്നു: ഒരു സോഴ്സ് ഡിസ്ട്രിബ്യൂഷൻ (sdist), ഒരു വീൽ ഡിസ്ട്രിബ്യൂഷൻ (bdist_wheel).
`sdist` നിങ്ങളുടെ സോഴ്സ് കോഡും `setup.py` ഫയലും അടങ്ങുന്നു. `bdist_wheel` എന്നത് മുൻകൂട്ടി നിർമ്മിച്ച ഒരു ഡിസ്ട്രിബ്യൂഷനാണ്, അത് കൂടുതൽ വേഗത്തിൽ ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും.
നിങ്ങളുടെ പാക്കേജ് PyPI-ൽ പ്രസിദ്ധീകരിക്കുന്നു
നിങ്ങളുടെ പാക്കേജ് പ്രസിദ്ധീകരിക്കുന്നതിനുമുമ്പ്, നിങ്ങൾ PyPI (https://pypi.org/) ൽ ഒരു അക്കൗണ്ട് ഉണ്ടാക്കുകയും ഒരു API ടോക്കൺ സൃഷ്ടിക്കുകയും വേണം. നിങ്ങളുടെ അപ്ലോഡുകൾ പ്രാമാണീകരിക്കുന്നതിന് ഈ ടോക്കൺ ഉപയോഗിക്കും.
- PyPI-ൽ രജിസ്റ്റർ ചെയ്യുക: https://pypi.org/account/register/ എന്നതിലേക്ക് പോയി ഒരു അക്കൗണ്ട് ഉണ്ടാക്കുക.
- ഒരു API ടോക്കൺ ഉണ്ടാക്കുക: https://pypi.org/manage/account/ എന്നതിലേക്ക് പോകുക, "API tokens" വിഭാഗത്തിലേക്ക് താഴേക്ക് സ്ക്രോൾ ചെയ്ത് ഒരു പുതിയ ടോക്കൺ ഉണ്ടാക്കുക. നിങ്ങളുടെ പാക്കേജ് അപ്ലോഡ് ചെയ്യാൻ ഈ ടോക്കൺ ആവശ്യമായതിനാൽ ഇത് സുരക്ഷിതമായി സൂക്ഷിക്കുക.
- Twine ഇൻസ്റ്റാൾ ചെയ്യുക: `pip install twine` റൺ ചെയ്യുക.
- നിങ്ങളുടെ പാക്കേജ് അപ്ലോഡ് ചെയ്യുക: `twine upload dist/*` റൺ ചെയ്യുക. നിങ്ങളോട് ഉപയോക്തൃനാമവും (
__token__) പാസ്വേഡും (നിങ്ങൾ ഉണ്ടാക്കിയ API ടോക്കൺ) ചോദിക്കും.
പ്രധാന സുരക്ഷാ കുറിപ്പ്: നിങ്ങളുടെ API ടോക്കൺ ഒരിക്കലും നിങ്ങളുടെ റിപ്പോസിറ്ററിയിൽ ചേർക്കരുത്. ഇത് സുരക്ഷിതമായി സൂക്ഷിക്കുകയും അപ്ലോഡ് പ്രക്രിയയിൽ അത് ആക്സസ് ചെയ്യാൻ എൻവയോൺമെൻ്റ് വേരിയബിളുകളോ മറ്റ് സുരക്ഷിതമായ രീതികളോ ഉപയോഗിക്കുക.
നിങ്ങളുടെ പാക്കേജ് ഇൻസ്റ്റാളേഷൻ പരീക്ഷിക്കുന്നു
നിങ്ങളുടെ പാക്കേജ് പ്രസിദ്ധീകരിച്ച ശേഷം, അത് ശരിയായി ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയുന്നുണ്ടോ എന്ന് പരിശോധിക്കേണ്ടത് അത്യാവശ്യമാണ്.
- ഒരു പുതിയ വെർച്വൽ എൻവയോൺമെൻ്റ് ഉണ്ടാക്കുക: നിങ്ങൾ ഒരു ശുദ്ധമായ എൻവയോൺമെൻ്റിൽ ഇൻസ്റ്റാളേഷൻ പരീക്ഷിക്കുന്നുവെന്ന് ഇത് ഉറപ്പാക്കുന്നു.
- നിങ്ങളുടെ പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുക: `pip install your-package-name` റൺ ചെയ്യുക.
- നിങ്ങളുടെ പാക്കേജ് ഇമ്പോർട്ട് ചെയ്ത് ഉപയോഗിക്കുക: ഒരു പൈത്തൺ ഇൻ്റർപ്രെട്ടറിൽ, നിങ്ങളുടെ പാക്കേജ് ഇമ്പോർട്ട് ചെയ്ത് അത് പ്രതീക്ഷിച്ചപോലെ പ്രവർത്തിക്കുന്നുണ്ടോ എന്ന് പരിശോധിക്കുക.
കണ്ടിന്യൂവസ് ഇന്റഗ്രേഷനും കണ്ടിന്യൂവസ് ഡിപ്ലോയ്മെന്റും (CI/CD)
നിങ്ങളുടെ പാക്കേജ് നിർമ്മിക്കുന്നതിനും, പരീക്ഷിക്കുന്നതിനും, പ്രസിദ്ധീകരിക്കുന്നതിനുമുള്ള പ്രക്രിയ ഓട്ടോമേറ്റ് ചെയ്യുന്നതിന്, നിങ്ങൾക്ക് GitHub Actions, GitLab CI, അല്ലെങ്കിൽ Travis CI പോലുള്ള CI/CD ടൂളുകൾ ഉപയോഗിക്കാം.
നിങ്ങളുടെ പാക്കേജ് നിർമ്മിച്ച് PyPI-ൽ പ്രസിദ്ധീകരിക്കുന്ന ഒരു GitHub Actions വർക്ക്ഫ്ലോയുടെ ഉദാഹരണം ഇതാ:
name: Publish to PyPI
on:
release:
types: [published]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.x
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Build package
run: python setup.py sdist bdist_wheel
- name: Publish package to PyPI
run: |
twine upload dist/* \
-u __token__ \
-p ${{ secrets.PYPI_API_TOKEN }}
വിശദീകരണം:
- GitHub-ൽ ഒരു പുതിയ റിലീസ് പ്രസിദ്ധീകരിക്കുമ്പോൾ ഈ വർക്ക്ഫ്ലോ പ്രവർത്തനക്ഷമമാകും.
- ഇത് കോഡ് പരിശോധിക്കുന്നു, പൈത്തൺ സജ്ജമാക്കുന്നു, ഡിപൻഡൻസികൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നു, പാക്കേജ് നിർമ്മിക്കുന്നു, അത് PyPI-ലേക്ക് അപ്ലോഡ് ചെയ്യുന്നു.
secrets.PYPI_API_TOKENഎന്നത് നിങ്ങളുടെ PyPI API ടോക്കൺ സൂക്ഷിക്കുന്ന ഒരു GitHub രഹസ്യമാണ്. നിങ്ങളുടെ GitHub റിപ്പോസിറ്ററി ക്രമീകരണങ്ങളിൽ ഈ രഹസ്യം കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്.
പൈത്തൺ പാക്കേജ് വിതരണത്തിനുള്ള മികച്ച രീതികൾ
- സമഗ്രമായ ഡോക്യുമെൻ്റേഷൻ എഴുതുക: വിശദമായ ഒരു `README.md` ഫയലും, സ്ഫിങ്ക്സ് പോലുള്ള ടൂളുകൾ ഉപയോഗിച്ച് API ഡോക്യുമെൻ്റേഷനും ഉൾപ്പെടുത്തുക. നിങ്ങളുടെ പാക്കേജ് ഉപയോഗിക്കാൻ എളുപ്പമാക്കുന്നതിന് വ്യക്തവും പൂർണ്ണവുമായ ഡോക്യുമെൻ്റേഷൻ നിർണായകമാണ്.
- യൂണിറ്റ് ടെസ്റ്റുകൾ എഴുതുക: നിങ്ങളുടെ കോഡിൻ്റെ ഗുണനിലവാരവും വിശ്വാസ്യതയും ഉറപ്പാക്കാൻ അത് സമഗ്രമായി പരീക്ഷിക്കുക. pytest അല്ലെങ്കിൽ unittest പോലുള്ള ഒരു ടെസ്റ്റിംഗ് ഫ്രെയിംവർക്ക് ഉപയോഗിക്കുക.
- PEP 8 ശൈലി മാർഗ്ഗനിർദ്ദേശങ്ങൾ പാലിക്കുക: സ്ഥിരവും വായിക്കാവുന്നതുമായ കോഡ് ഉറപ്പാക്കാൻ പൈത്തൺ എൻഹാൻസ്മെൻ്റ് പ്രൊപ്പോസൽ 8 (PEP 8) ശൈലി ഗൈഡ് പാലിക്കുക.
- ഒരു ലൈസൻസ് ഉപയോഗിക്കുക: മറ്റുള്ളവർക്ക് നിങ്ങളുടെ കോഡ് എങ്ങനെ ഉപയോഗിക്കാം എന്ന് വ്യക്തമാക്കുന്നതിന് അനുയോജ്യമായ ഒരു ഓപ്പൺ സോഴ്സ് ലൈസൻസ് തിരഞ്ഞെടുക്കുക.
- നിങ്ങളുടെ ഡിപൻഡൻസികൾ കാലികമായി നിലനിർത്തുക: ബഗ് പരിഹാരങ്ങൾ, സുരക്ഷാ പാച്ചുകൾ, പുതിയ ഫീച്ചറുകൾ എന്നിവയിൽ നിന്ന് പ്രയോജനം നേടുന്നതിന് നിങ്ങളുടെ പാക്കേജിൻ്റെ ഡിപൻഡൻസികൾ പതിവായി അപ്ഡേറ്റ് ചെയ്യുക.
- ഒരു വെർച്വൽ എൻവയോൺമെൻ്റ് ഉപയോഗിക്കുക: ഡിപൻഡൻസികൾ വേർതിരിക്കുന്നതിന് എല്ലായ്പ്പോഴും ഒരു വെർച്വൽ എൻവയോൺമെൻ്റിനുള്ളിൽ നിങ്ങളുടെ പാക്കേജ് വികസിപ്പിക്കുകയും പരീക്ഷിക്കുകയും ചെയ്യുക.
- അന്താരാഷ്ട്രവൽക്കരണവും (i18n) പ്രാദേശികവൽക്കരണവും (l10n) പരിഗണിക്കുക: നിങ്ങളുടെ പാക്കേജ് ഉപയോക്താക്കൾ കാണുന്ന ടെക്സ്റ്റുകളോ ഡാറ്റയോ കൈകാര്യം ചെയ്യുന്നുണ്ടെങ്കിൽ, അത് വ്യത്യസ്ത ഭാഷകൾക്കും പ്രദേശങ്ങൾക്കും അനുയോജ്യമാക്കുന്നത് പരിഗണിക്കുക. ഇത് നിങ്ങളുടെ ഉപയോക്തൃ അടിത്തറ ആഗോളതലത്തിൽ വികസിപ്പിക്കുന്നു. ബാബേൽ പോലുള്ള ഉപകരണങ്ങൾ ഇതിന് സഹായിക്കും.
- വിവിധ സമയ മേഖലകളും കറൻസികളും കൈകാര്യം ചെയ്യുക: നിങ്ങളുടെ പാക്കേജ് തീയതികൾ, സമയങ്ങൾ, അല്ലെങ്കിൽ സാമ്പത്തിക ഇടപാടുകൾ എന്നിവ കൈകാര്യം ചെയ്യുന്നുണ്ടെങ്കിൽ, ലോകമെമ്പാടുമുള്ള വിവിധ സമയ മേഖലകളെയും കറൻസികളെയും കുറിച്ച് ശ്രദ്ധാലുവായിരിക്കുക. ഈ സങ്കീർണ്ണതകൾ ശരിയായി കൈകാര്യം ചെയ്യാൻ ഉചിതമായ ലൈബ്രറികളും API-കളും ഉപയോഗിക്കുക.
- വ്യക്തമായ പിശക് സന്ദേശങ്ങൾ നൽകുക: എന്ത് തെറ്റ് സംഭവിച്ചു എന്നും അത് എങ്ങനെ പരിഹരിക്കാമെന്നും ഉപയോക്താക്കളെ മനസ്സിലാക്കാൻ സഹായിക്കുന്ന വിവരദായകമായ പിശക് സന്ദേശങ്ങൾ എഴുതുക. സാധ്യമെങ്കിൽ ഈ പിശക് സന്ദേശങ്ങൾ വിവിധ ഭാഷകളിലേക്ക് വിവർത്തനം ചെയ്യുക.
- ലഭ്യതയെക്കുറിച്ച് ചിന്തിക്കുക: നിങ്ങളുടെ പാക്കേജിൻ്റെ ഇൻ്റർഫേസും ഡോക്യുമെൻ്റേഷനും രൂപകൽപ്പന ചെയ്യുമ്പോൾ വൈകല്യമുള്ള ഉപയോക്താക്കളെ പരിഗണിക്കുക. നിങ്ങളുടെ പാക്കേജ് എല്ലാവർക്കും ഉപയോഗയോഗ്യമാണെന്ന് ഉറപ്പാക്കാൻ ലഭ്യത മാർഗ്ഗനിർദ്ദേശങ്ങൾ പാലിക്കുക.
വികസിത വിഷയങ്ങൾ
- നെയിംസ്പേസ് പാക്കേജുകൾ: ഒരൊറ്റ പൈത്തൺ പാക്കേജിനെ ഒന്നിലധികം ഡയറക്ടറികളിലേക്കോ ഒന്നിലധികം ഡിസ്ട്രിബ്യൂഷനുകളിലേക്കോ വിഭജിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.
- എൻട്രി പോയിൻ്റുകൾ: മറ്റ് പാക്കേജുകളിൽ നിന്നോ കമാൻഡ് ലൈനിൽ നിന്നോ വിളിക്കാൻ കഴിയുന്ന ഫംഗ്ഷനുകളോ ക്ലാസുകളോ നിർവചിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.
- ഡാറ്റ ഫയലുകൾ: പൈത്തൺ അല്ലാത്ത ഫയലുകൾ (ഉദാ. ഡാറ്റ ഫയലുകൾ, കോൺഫിഗറേഷൻ ഫയലുകൾ) നിങ്ങളുടെ വിതരണത്തിൽ ഉൾപ്പെടുത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു.
- വ്യവസ്ഥാപിത ഡിപൻഡൻസികൾ: ചില വ്യവസ്ഥകൾക്ക് കീഴിൽ മാത്രം ആവശ്യമായ ഡിപൻഡൻസികൾ വ്യക്തമാക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു (ഉദാ. ഒരു പ്രത്യേക ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൽ).
ഉപസംഹാരം
നിങ്ങളുടെ പൈത്തൺ പാക്കേജ് PyPI-ൽ വിതരണം ചെയ്യുന്നത് നിങ്ങളുടെ സൃഷ്ടികൾ ലോകവുമായി പങ്കുവെക്കാനും പൈത്തൺ ഇക്കോസിസ്റ്റത്തിന് സംഭാവന നൽകാനുമുള്ള മികച്ച മാർഗമാണ്. ഈ ഗൈഡിൽ വിവരിച്ചിരിക്കുന്ന ഘട്ടങ്ങളും മികച്ച രീതികളും പിന്തുടരുന്നതിലൂടെ, നിങ്ങൾക്ക് എളുപ്പത്തിൽ ഇൻസ്റ്റാൾ ചെയ്യാനും ഉപയോഗിക്കാനും പരിപാലിക്കാനും കഴിയുന്ന ഉയർന്ന നിലവാരമുള്ള പൈത്തൺ പാക്കേജുകൾ നിർമ്മിക്കാനും പ്രസിദ്ധീകരിക്കാനും കഴിയും. നിങ്ങളുടെ പാക്കേജിൻ്റെ വിജയത്തിനായി വ്യക്തമായ ഡോക്യുമെൻ്റേഷൻ, സമഗ്രമായ ടെസ്റ്റിംഗ്, സ്ഥിരതയുള്ള പതിപ്പ് മാനേജ്മെൻ്റ് എന്നിവയ്ക്ക് മുൻഗണന നൽകാൻ ഓർമ്മിക്കുക.